<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
<head>
<title>UIViewController+Action.swift - Slather</title>
<link href="slather.css" media="all" rel="stylesheet">
</head>
<body>
<header><div class="row"><a href="index.html"><img src="logo.jpg" alt="Slather logo"></a></div></header><div class="row"><div id="reports">
<h2 class="cov_title">
<span>Coverage for "UIViewController+Action.swift" : </span><span class="cov_high">100.00%</span>
</h2>
<h4 class="cov_subtitle">(108 of 108 relevant lines covered)</h4>
<h4 class="cov_filepath">RouteComposer/Classes/Actions/UIViewController+Action.swift</h4>
<table class="source_code">
<tr class="never">
<td class="num">1</td>
<td class="src"><pre><code class="objc">//</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">2</td>
<td class="src"><pre><code class="objc">// RouteComposer</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">3</td>
<td class="src"><pre><code class="objc">// UIViewController+Action.swift</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">4</td>
<td class="src"><pre><code class="objc">// https://github.com/ekazaev/route-composer</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">5</td>
<td class="src"><pre><code class="objc">//</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">6</td>
<td class="src"><pre><code class="objc">// Created by Eugene Kazaev in 2018-2022.</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">7</td>
<td class="src"><pre><code class="objc">// Distributed under the MIT license.</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">8</td>
<td class="src"><pre><code class="objc">//</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">9</td>
<td class="src"><pre><code class="objc">// Become a sponsor:</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">10</td>
<td class="src"><pre><code class="objc">// https://github.com/sponsors/ekazaev</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">11</td>
<td class="src"><pre><code class="objc">//</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">12</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">13</td>
<td class="src"><pre><code class="objc">import Foundation</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">14</td>
<td class="src"><pre><code class="objc">import UIKit</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">15</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">16</td>
<td class="src"><pre><code class="objc">/// A wrapper for general actions that can be applied to any `UIViewController`</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">17</td>
<td class="src"><pre><code class="objc">public enum GeneralAction {</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">18</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">19</td>
<td class="src"><pre><code class="objc">    // MARK: Actions</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">20</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">21</td>
<td class="src"><pre><code class="objc">    /// Replaces the root view controller in the key `UIWindow`</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">22</td>
<td class="src"><pre><code class="objc">    ///</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">23</td>
<td class="src"><pre><code class="objc">    /// - Parameters:</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">24</td>
<td class="src"><pre><code class="objc">    ///   - windowProvider: `WindowProvider` instance</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">25</td>
<td class="src"><pre><code class="objc">    ///   - animationOptions: Set of `UIView.AnimationOptions`. Transition will happen without animation if not provided.</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">26</td>
<td class="src"><pre><code class="objc">    ///   - duration: Transition duration.</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">27</td>
<td class="src"><pre><code class="objc">    public static func replaceRoot(windowProvider: WindowProvider = RouteComposerDefaults.shared.windowProvider,</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">28</td>
<td class="src"><pre><code class="objc">                                   animationOptions: UIView.AnimationOptions? = nil,</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="covered">
<td class="num">29</td>
<td class="src"><pre><code class="objc">                                   duration: TimeInterval = 0.3) -&gt; ViewControllerActions.ReplaceRootAction {</code></pre></td>
<td class="coverage">68x</td>
</tr>
<tr class="covered">
<td class="num">30</td>
<td class="src"><pre><code class="objc">        ViewControllerActions.ReplaceRootAction(windowProvider: windowProvider, animationOptions: animationOptions, duration: duration)</code></pre></td>
<td class="coverage">68x</td>
</tr>
<tr class="covered">
<td class="num">31</td>
<td class="src"><pre><code class="objc">    }</code></pre></td>
<td class="coverage">68x</td>
</tr>
<tr class="never">
<td class="num">32</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">33</td>
<td class="src"><pre><code class="objc">    /// Presents a view controller modally</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">34</td>
<td class="src"><pre><code class="objc">    ///</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">35</td>
<td class="src"><pre><code class="objc">    /// - Parameters:</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">36</td>
<td class="src"><pre><code class="objc">    ///   - presentationStartingPoint: A starting point in the modal presentation</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">37</td>
<td class="src"><pre><code class="objc">    ///   - presentationStyle: `UIModalPresentationStyle` setting, default value: .fullScreen</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">38</td>
<td class="src"><pre><code class="objc">    ///   - transitionStyle: `UIModalTransitionStyle` setting, default value: .coverVertical</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">39</td>
<td class="src"><pre><code class="objc">    ///   - transitioningDelegate: `UIViewControllerTransitioningDelegate` instance to be used during the transition</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">40</td>
<td class="src"><pre><code class="objc">    ///   - isModalInPresentation: A Boolean value indicating whether the view controller enforces a modal behavior.</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">41</td>
<td class="src"><pre><code class="objc">    ///   - preferredContentSize: The preferredContentSize is used for any container laying out a child view controller.</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">42</td>
<td class="src"><pre><code class="objc">    ///   - popoverControllerConfigurationBlock: Block to configure `UIPopoverPresentationController`.</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">43</td>
<td class="src"><pre><code class="objc">    public static func presentModally(startingFrom presentationStartingPoint: ViewControllerActions.PresentModallyAction.ModalPresentationStartingPoint = .current,</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">44</td>
<td class="src"><pre><code class="objc">                                      presentationStyle: UIModalPresentationStyle? = .fullScreen,</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">45</td>
<td class="src"><pre><code class="objc">                                      transitionStyle: UIModalTransitionStyle? = .coverVertical,</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">46</td>
<td class="src"><pre><code class="objc">                                      transitioningDelegate: UIViewControllerTransitioningDelegate? = nil,</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">47</td>
<td class="src"><pre><code class="objc">                                      preferredContentSize: CGSize? = nil,</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">48</td>
<td class="src"><pre><code class="objc">                                      isModalInPresentation: Bool? = nil,</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="covered">
<td class="num">49</td>
<td class="src"><pre><code class="objc">                                      popoverConfiguration: ((_: UIPopoverPresentationController) -&gt; Void)? = nil) -&gt; ViewControllerActions.PresentModallyAction {</code></pre></td>
<td class="coverage">43x</td>
</tr>
<tr class="covered">
<td class="num">50</td>
<td class="src"><pre><code class="objc">        ViewControllerActions.PresentModallyAction(startingFrom: presentationStartingPoint,</code></pre></td>
<td class="coverage">43x</td>
</tr>
<tr class="covered">
<td class="num">51</td>
<td class="src"><pre><code class="objc">                                                   presentationStyle: presentationStyle,</code></pre></td>
<td class="coverage">43x</td>
</tr>
<tr class="covered">
<td class="num">52</td>
<td class="src"><pre><code class="objc">                                                   transitionStyle: transitionStyle,</code></pre></td>
<td class="coverage">43x</td>
</tr>
<tr class="covered">
<td class="num">53</td>
<td class="src"><pre><code class="objc">                                                   transitioningDelegate: transitioningDelegate,</code></pre></td>
<td class="coverage">43x</td>
</tr>
<tr class="covered">
<td class="num">54</td>
<td class="src"><pre><code class="objc">                                                   preferredContentSize: preferredContentSize,</code></pre></td>
<td class="coverage">43x</td>
</tr>
<tr class="covered">
<td class="num">55</td>
<td class="src"><pre><code class="objc">                                                   isModalInPresentation: isModalInPresentation,</code></pre></td>
<td class="coverage">43x</td>
</tr>
<tr class="covered">
<td class="num">56</td>
<td class="src"><pre><code class="objc">                                                   popoverConfiguration: popoverConfiguration)</code></pre></td>
<td class="coverage">43x</td>
</tr>
<tr class="covered">
<td class="num">57</td>
<td class="src"><pre><code class="objc">    }</code></pre></td>
<td class="coverage">43x</td>
</tr>
<tr class="never">
<td class="num">58</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">59</td>
<td class="src"><pre><code class="objc">    /// `Action` does nothing, but can be helpful for testing or writing the sequences of steps with the `NilFactory`</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="covered">
<td class="num">60</td>
<td class="src"><pre><code class="objc">    public static func nilAction() -&gt; ViewControllerActions.NilAction {</code></pre></td>
<td class="coverage">1x</td>
</tr>
<tr class="covered">
<td class="num">61</td>
<td class="src"><pre><code class="objc">        ViewControllerActions.NilAction()</code></pre></td>
<td class="coverage">1x</td>
</tr>
<tr class="covered">
<td class="num">62</td>
<td class="src"><pre><code class="objc">    }</code></pre></td>
<td class="coverage">1x</td>
</tr>
<tr class="never">
<td class="num">63</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">64</td>
<td class="src"><pre><code class="objc">}</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">65</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">66</td>
<td class="src"><pre><code class="objc">/// A wrapper for general actions that can be applied to any `UIViewController`</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">67</td>
<td class="src"><pre><code class="objc">public enum ViewControllerActions {</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">68</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">69</td>
<td class="src"><pre><code class="objc">    // MARK: Internal entities</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">70</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">71</td>
<td class="src"><pre><code class="objc">    /// Presents a view controller modally</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">72</td>
<td class="src"><pre><code class="objc">    public struct PresentModallyAction: Action {</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">73</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">74</td>
<td class="src"><pre><code class="objc">        /// A starting point in the modal presentation</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">75</td>
<td class="src"><pre><code class="objc">        public enum ModalPresentationStartingPoint {</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">76</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">77</td>
<td class="src"><pre><code class="objc">            /// Present from the `UIViewController` from the previous step (Default behaviour)</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">78</td>
<td class="src"><pre><code class="objc">            case current</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">79</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">80</td>
<td class="src"><pre><code class="objc">            /// Present from the topmost parent `UIViewController` of the `UIViewController` from the previous step</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">81</td>
<td class="src"><pre><code class="objc">            case topmostParent</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">82</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">83</td>
<td class="src"><pre><code class="objc">            /// Present from the custom `UIViewController`</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">84</td>
<td class="src"><pre><code class="objc">            case custom(@autoclosure () throws -&gt; UIViewController?)</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">85</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">86</td>
<td class="src"><pre><code class="objc">        }</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">87</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">88</td>
<td class="src"><pre><code class="objc">        // MARK: Properties</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">89</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">90</td>
<td class="src"><pre><code class="objc">        /// A starting point in the modal presentation</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">91</td>
<td class="src"><pre><code class="objc">        public let presentationStartingPoint: ModalPresentationStartingPoint</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">92</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">93</td>
<td class="src"><pre><code class="objc">        /// `UIModalPresentationStyle` setting</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">94</td>
<td class="src"><pre><code class="objc">        public let presentationStyle: UIModalPresentationStyle?</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">95</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">96</td>
<td class="src"><pre><code class="objc">        /// A Boolean value indicating whether the view controller enforces a modal behavior.</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">97</td>
<td class="src"><pre><code class="objc">        public let isModalInPresentation: Bool?</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">98</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">99</td>
<td class="src"><pre><code class="objc">        /// `UIModalTransitionStyle` setting</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">100</td>
<td class="src"><pre><code class="objc">        public let transitionStyle: UIModalTransitionStyle?</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">101</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">102</td>
<td class="src"><pre><code class="objc">        /// The preferredContentSize is used for any container laying out a child view controller.</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">103</td>
<td class="src"><pre><code class="objc">        public let preferredContentSize: CGSize?</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">104</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">105</td>
<td class="src"><pre><code class="objc">        /// Block to configure `UIPopoverPresentationController`</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">106</td>
<td class="src"><pre><code class="objc">        public let popoverControllerConfigurationBlock: ((_: UIPopoverPresentationController) -&gt; Void)?</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">107</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">108</td>
<td class="src"><pre><code class="objc">        /// `UIViewControllerTransitioningDelegate` instance to be used during the transition</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">109</td>
<td class="src"><pre><code class="objc">        public private(set) weak var transitioningDelegate: UIViewControllerTransitioningDelegate?</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">110</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">111</td>
<td class="src"><pre><code class="objc">        // MARK: Methods</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">112</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">113</td>
<td class="src"><pre><code class="objc">        /// Constructor</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">114</td>
<td class="src"><pre><code class="objc">        ///</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">115</td>
<td class="src"><pre><code class="objc">        /// - Parameters:</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">116</td>
<td class="src"><pre><code class="objc">        ///   - presentationStartingPoint: A starting point in the modal presentation</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">117</td>
<td class="src"><pre><code class="objc">        ///   - presentationStyle: `UIModalPresentationStyle` setting, default value: .fullScreen</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">118</td>
<td class="src"><pre><code class="objc">        ///   - transitionStyle: `UIModalTransitionStyle` setting, default value: .coverVertical</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">119</td>
<td class="src"><pre><code class="objc">        ///   - transitioningDelegate: `UIViewControllerTransitioningDelegate` instance to be used during the transition</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">120</td>
<td class="src"><pre><code class="objc">        ///   - preferredContentSize: The preferredContentSize is used for any container laying out a child view controller.</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">121</td>
<td class="src"><pre><code class="objc">        ///   - isModalInPresentation: A Boolean value indicating whether the view controller enforces a modal behavior.</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">122</td>
<td class="src"><pre><code class="objc">        ///   - popoverControllerConfigurationBlock: Block to configure `UIPopoverPresentationController`.</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">123</td>
<td class="src"><pre><code class="objc">        init(startingFrom presentationStartingPoint: ModalPresentationStartingPoint = .current,</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">124</td>
<td class="src"><pre><code class="objc">             presentationStyle: UIModalPresentationStyle? = .fullScreen,</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">125</td>
<td class="src"><pre><code class="objc">             transitionStyle: UIModalTransitionStyle? = .coverVertical,</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">126</td>
<td class="src"><pre><code class="objc">             transitioningDelegate: UIViewControllerTransitioningDelegate? = nil,</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">127</td>
<td class="src"><pre><code class="objc">             preferredContentSize: CGSize? = nil,</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">128</td>
<td class="src"><pre><code class="objc">             isModalInPresentation: Bool? = nil,</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="covered">
<td class="num">129</td>
<td class="src"><pre><code class="objc">             popoverConfiguration: ((_: UIPopoverPresentationController) -&gt; Void)? = nil) {</code></pre></td>
<td class="coverage">44x</td>
</tr>
<tr class="covered">
<td class="num">130</td>
<td class="src"><pre><code class="objc">            self.presentationStartingPoint = presentationStartingPoint</code></pre></td>
<td class="coverage">44x</td>
</tr>
<tr class="covered">
<td class="num">131</td>
<td class="src"><pre><code class="objc">            self.presentationStyle = presentationStyle</code></pre></td>
<td class="coverage">44x</td>
</tr>
<tr class="covered">
<td class="num">132</td>
<td class="src"><pre><code class="objc">            self.transitionStyle = transitionStyle</code></pre></td>
<td class="coverage">44x</td>
</tr>
<tr class="covered">
<td class="num">133</td>
<td class="src"><pre><code class="objc">            self.transitioningDelegate = transitioningDelegate</code></pre></td>
<td class="coverage">44x</td>
</tr>
<tr class="covered">
<td class="num">134</td>
<td class="src"><pre><code class="objc">            self.preferredContentSize = preferredContentSize</code></pre></td>
<td class="coverage">44x</td>
</tr>
<tr class="covered">
<td class="num">135</td>
<td class="src"><pre><code class="objc">            self.popoverControllerConfigurationBlock = popoverConfiguration</code></pre></td>
<td class="coverage">44x</td>
</tr>
<tr class="covered">
<td class="num">136</td>
<td class="src"><pre><code class="objc">            self.isModalInPresentation = isModalInPresentation</code></pre></td>
<td class="coverage">44x</td>
</tr>
<tr class="covered">
<td class="num">137</td>
<td class="src"><pre><code class="objc">        }</code></pre></td>
<td class="coverage">44x</td>
</tr>
<tr class="never">
<td class="num">138</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">139</td>
<td class="src"><pre><code class="objc">        public func perform(with viewController: UIViewController,</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">140</td>
<td class="src"><pre><code class="objc">                            on existingController: UIViewController,</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">141</td>
<td class="src"><pre><code class="objc">                            animated: Bool,</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="covered">
<td class="num">142</td>
<td class="src"><pre><code class="objc">                            completion: @escaping (_: RoutingResult) -&gt; Void) {</code></pre></td>
<td class="coverage">25x</td>
</tr>
<tr class="covered">
<td class="num">143</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage">25x</td>
</tr>
<tr class="covered">
<td class="num">144</td>
<td class="src"><pre><code class="objc">            let presentingViewController: UIViewController</code></pre></td>
<td class="coverage">25x</td>
</tr>
<tr class="covered">
<td class="num">145</td>
<td class="src"><pre><code class="objc">            switch presentationStartingPoint {</code></pre></td>
<td class="coverage">25x</td>
</tr>
<tr class="covered">
<td class="num">146</td>
<td class="src"><pre><code class="objc">            case .current:</code></pre></td>
<td class="coverage">25x</td>
</tr>
<tr class="covered">
<td class="num">147</td>
<td class="src"><pre><code class="objc">                presentingViewController = existingController</code></pre></td>
<td class="coverage">14x</td>
</tr>
<tr class="covered">
<td class="num">148</td>
<td class="src"><pre><code class="objc">            case .topmostParent:</code></pre></td>
<td class="coverage">25x</td>
</tr>
<tr class="covered">
<td class="num">149</td>
<td class="src"><pre><code class="objc">                presentingViewController = existingController.allParents.last ?? existingController</code></pre></td>
<td class="coverage">3x</td>
</tr>
<tr class="covered">
<td class="num">150</td>
<td class="src"><pre><code class="objc">            case let .custom(viewController):</code></pre></td>
<td class="coverage">25x</td>
</tr>
<tr class="covered">
<td class="num">151</td>
<td class="src"><pre><code class="objc">                guard let viewController = try? viewController() else {</code></pre></td>
<td class="coverage">8x</td>
</tr>
<tr class="covered">
<td class="num">152</td>
<td class="src"><pre><code class="objc">                    completion(.failure(RoutingError.compositionFailed(</code></pre></td>
<td class="coverage">1x</td>
</tr>
<tr class="covered">
<td class="num">153</td>
<td class="src"><pre><code class="objc">                        .init("The view controller to start modal presentation from was not found."))))</code></pre></td>
<td class="coverage">1x</td>
</tr>
<tr class="covered">
<td class="num">154</td>
<td class="src"><pre><code class="objc">                    return</code></pre></td>
<td class="coverage">1x</td>
</tr>
<tr class="covered">
<td class="num">155</td>
<td class="src"><pre><code class="objc">                }</code></pre></td>
<td class="coverage">7x</td>
</tr>
<tr class="covered">
<td class="num">156</td>
<td class="src"><pre><code class="objc">                presentingViewController = viewController</code></pre></td>
<td class="coverage">7x</td>
</tr>
<tr class="covered">
<td class="num">157</td>
<td class="src"><pre><code class="objc">            }</code></pre></td>
<td class="coverage">25x</td>
</tr>
<tr class="covered">
<td class="num">158</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage">25x</td>
</tr>
<tr class="covered">
<td class="num">159</td>
<td class="src"><pre><code class="objc">            guard presentingViewController.presentedViewController == nil else {</code></pre></td>
<td class="coverage">25x</td>
</tr>
<tr class="covered">
<td class="num">160</td>
<td class="src"><pre><code class="objc">                completion(.failure(RoutingError.compositionFailed(.init("\(presentingViewController) is " +</code></pre></td>
<td class="coverage">1x</td>
</tr>
<tr class="covered">
<td class="num">161</td>
<td class="src"><pre><code class="objc">                        "already presenting a view controller."))))</code></pre></td>
<td class="coverage">1x</td>
</tr>
<tr class="covered">
<td class="num">162</td>
<td class="src"><pre><code class="objc">                return</code></pre></td>
<td class="coverage">1x</td>
</tr>
<tr class="covered">
<td class="num">163</td>
<td class="src"><pre><code class="objc">            }</code></pre></td>
<td class="coverage">24x</td>
</tr>
<tr class="covered">
<td class="num">164</td>
<td class="src"><pre><code class="objc">            if let presentationStyle {</code></pre></td>
<td class="coverage">24x</td>
</tr>
<tr class="covered">
<td class="num">165</td>
<td class="src"><pre><code class="objc">                viewController.modalPresentationStyle = presentationStyle</code></pre></td>
<td class="coverage">23x</td>
</tr>
<tr class="covered">
<td class="num">166</td>
<td class="src"><pre><code class="objc">            }</code></pre></td>
<td class="coverage">24x</td>
</tr>
<tr class="covered">
<td class="num">167</td>
<td class="src"><pre><code class="objc">            if let transitionStyle {</code></pre></td>
<td class="coverage">24x</td>
</tr>
<tr class="covered">
<td class="num">168</td>
<td class="src"><pre><code class="objc">                viewController.modalTransitionStyle = transitionStyle</code></pre></td>
<td class="coverage">23x</td>
</tr>
<tr class="covered">
<td class="num">169</td>
<td class="src"><pre><code class="objc">            }</code></pre></td>
<td class="coverage">24x</td>
</tr>
<tr class="covered">
<td class="num">170</td>
<td class="src"><pre><code class="objc">            if let transitioningDelegate {</code></pre></td>
<td class="coverage">24x</td>
</tr>
<tr class="covered">
<td class="num">171</td>
<td class="src"><pre><code class="objc">                viewController.transitioningDelegate = transitioningDelegate</code></pre></td>
<td class="coverage">4x</td>
</tr>
<tr class="covered">
<td class="num">172</td>
<td class="src"><pre><code class="objc">            }</code></pre></td>
<td class="coverage">24x</td>
</tr>
<tr class="covered">
<td class="num">173</td>
<td class="src"><pre><code class="objc">            if let preferredContentSize {</code></pre></td>
<td class="coverage">24x</td>
</tr>
<tr class="covered">
<td class="num">174</td>
<td class="src"><pre><code class="objc">                viewController.preferredContentSize = preferredContentSize</code></pre></td>
<td class="coverage">1x</td>
</tr>
<tr class="covered">
<td class="num">175</td>
<td class="src"><pre><code class="objc">            }</code></pre></td>
<td class="coverage">24x</td>
</tr>
<tr class="covered">
<td class="num">176</td>
<td class="src"><pre><code class="objc">            if let popoverPresentationController = viewController.popoverPresentationController,</code></pre></td>
<td class="coverage">24x</td>
</tr>
<tr class="covered">
<td class="num">177</td>
<td class="src"><pre><code class="objc">               let popoverControllerConfigurationBlock {</code></pre></td>
<td class="coverage">24x</td>
</tr>
<tr class="covered">
<td class="num">178</td>
<td class="src"><pre><code class="objc">                popoverControllerConfigurationBlock(popoverPresentationController)</code></pre></td>
<td class="coverage">1x</td>
</tr>
<tr class="covered">
<td class="num">179</td>
<td class="src"><pre><code class="objc">            }</code></pre></td>
<td class="coverage">24x</td>
</tr>
<tr class="covered">
<td class="num">180</td>
<td class="src"><pre><code class="objc">            if #available(iOS 13, *),</code></pre></td>
<td class="coverage">24x</td>
</tr>
<tr class="covered">
<td class="num">181</td>
<td class="src"><pre><code class="objc">               let isModalInPresentation {</code></pre></td>
<td class="coverage">24x</td>
</tr>
<tr class="covered">
<td class="num">182</td>
<td class="src"><pre><code class="objc">                viewController.isModalInPresentation = isModalInPresentation</code></pre></td>
<td class="coverage">1x</td>
</tr>
<tr class="covered">
<td class="num">183</td>
<td class="src"><pre><code class="objc">            }</code></pre></td>
<td class="coverage">24x</td>
</tr>
<tr class="covered">
<td class="num">184</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage">24x</td>
</tr>
<tr class="covered">
<td class="num">185</td>
<td class="src"><pre><code class="objc">            presentingViewController.present(viewController, animated: animated, completion: {</code></pre></td>
<td class="coverage">24x</td>
</tr>
<tr class="covered">
<td class="num">186</td>
<td class="src"><pre><code class="objc">                completion(.success)</code></pre></td>
<td class="coverage">23x</td>
</tr>
<tr class="covered">
<td class="num">187</td>
<td class="src"><pre><code class="objc">            })</code></pre></td>
<td class="coverage">23x</td>
</tr>
<tr class="covered">
<td class="num">188</td>
<td class="src"><pre><code class="objc">        }</code></pre></td>
<td class="coverage">24x</td>
</tr>
<tr class="never">
<td class="num">189</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">190</td>
<td class="src"><pre><code class="objc">    }</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">191</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">192</td>
<td class="src"><pre><code class="objc">    /// Replaces the root view controller in the key `UIWindow`</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">193</td>
<td class="src"><pre><code class="objc">    public struct ReplaceRootAction: Action {</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">194</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">195</td>
<td class="src"><pre><code class="objc">        // MARK: Properties</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">196</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">197</td>
<td class="src"><pre><code class="objc">        /// `WindowProvider` instance</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">198</td>
<td class="src"><pre><code class="objc">        public let windowProvider: WindowProvider</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">199</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">200</td>
<td class="src"><pre><code class="objc">        /// Set of `UIView.AnimationOptions`</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">201</td>
<td class="src"><pre><code class="objc">        public let animationOptions: UIView.AnimationOptions?</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">202</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">203</td>
<td class="src"><pre><code class="objc">        /// Transition duration.</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">204</td>
<td class="src"><pre><code class="objc">        public let duration: TimeInterval</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">205</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">206</td>
<td class="src"><pre><code class="objc">        // MARK: Methods</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">207</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">208</td>
<td class="src"><pre><code class="objc">        /// Constructor</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">209</td>
<td class="src"><pre><code class="objc">        ///</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">210</td>
<td class="src"><pre><code class="objc">        /// - Parameters:</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">211</td>
<td class="src"><pre><code class="objc">        ///   - windowProvider: `WindowProvider` instance</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">212</td>
<td class="src"><pre><code class="objc">        ///   - animationOptions: Set of `UIView.AnimationOptions`. Transition will happen without animation if not provided.</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">213</td>
<td class="src"><pre><code class="objc">        ///   - duration: Transition duration.</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="covered">
<td class="num">214</td>
<td class="src"><pre><code class="objc">        init(windowProvider: WindowProvider = RouteComposerDefaults.shared.windowProvider, animationOptions: UIView.AnimationOptions? = nil, duration: TimeInterval = 0.3) {</code></pre></td>
<td class="coverage">71x</td>
</tr>
<tr class="covered">
<td class="num">215</td>
<td class="src"><pre><code class="objc">            self.windowProvider = windowProvider</code></pre></td>
<td class="coverage">71x</td>
</tr>
<tr class="covered">
<td class="num">216</td>
<td class="src"><pre><code class="objc">            self.animationOptions = animationOptions</code></pre></td>
<td class="coverage">71x</td>
</tr>
<tr class="covered">
<td class="num">217</td>
<td class="src"><pre><code class="objc">            self.duration = duration</code></pre></td>
<td class="coverage">71x</td>
</tr>
<tr class="covered">
<td class="num">218</td>
<td class="src"><pre><code class="objc">        }</code></pre></td>
<td class="coverage">71x</td>
</tr>
<tr class="never">
<td class="num">219</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">220</td>
<td class="src"><pre><code class="objc">        public func perform(with viewController: UIViewController,</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">221</td>
<td class="src"><pre><code class="objc">                            on existingController: UIViewController,</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">222</td>
<td class="src"><pre><code class="objc">                            animated: Bool,</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="covered">
<td class="num">223</td>
<td class="src"><pre><code class="objc">                            completion: @escaping (_: RoutingResult) -&gt; Void) {</code></pre></td>
<td class="coverage">30x</td>
</tr>
<tr class="covered">
<td class="num">224</td>
<td class="src"><pre><code class="objc">            guard let window = windowProvider.window else {</code></pre></td>
<td class="coverage">30x</td>
</tr>
<tr class="covered">
<td class="num">225</td>
<td class="src"><pre><code class="objc">                completion(.failure(RoutingError.compositionFailed(.init("Window was not found."))))</code></pre></td>
<td class="coverage">1x</td>
</tr>
<tr class="covered">
<td class="num">226</td>
<td class="src"><pre><code class="objc">                return</code></pre></td>
<td class="coverage">1x</td>
</tr>
<tr class="covered">
<td class="num">227</td>
<td class="src"><pre><code class="objc">            }</code></pre></td>
<td class="coverage">29x</td>
</tr>
<tr class="covered">
<td class="num">228</td>
<td class="src"><pre><code class="objc">            guard window.rootViewController == existingController else {</code></pre></td>
<td class="coverage">29x</td>
</tr>
<tr class="covered">
<td class="num">229</td>
<td class="src"><pre><code class="objc">                completion(.failure(RoutingError.compositionFailed(.init("Action should be applied to the root view " +</code></pre></td>
<td class="coverage">3x</td>
</tr>
<tr class="covered">
<td class="num">230</td>
<td class="src"><pre><code class="objc">                        "controller, got \(String(describing: existingController)) instead."))))</code></pre></td>
<td class="coverage">3x</td>
</tr>
<tr class="covered">
<td class="num">231</td>
<td class="src"><pre><code class="objc">                return</code></pre></td>
<td class="coverage">3x</td>
</tr>
<tr class="covered">
<td class="num">232</td>
<td class="src"><pre><code class="objc">            }</code></pre></td>
<td class="coverage">26x</td>
</tr>
<tr class="covered">
<td class="num">233</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage">26x</td>
</tr>
<tr class="covered">
<td class="num">234</td>
<td class="src"><pre><code class="objc">            guard animated, let animationOptions, duration &gt; 0 else {</code></pre></td>
<td class="coverage">26x</td>
</tr>
<tr class="covered">
<td class="num">235</td>
<td class="src"><pre><code class="objc">                window.rootViewController = viewController</code></pre></td>
<td class="coverage">10x</td>
</tr>
<tr class="covered">
<td class="num">236</td>
<td class="src"><pre><code class="objc">                window.makeKeyAndVisible()</code></pre></td>
<td class="coverage">10x</td>
</tr>
<tr class="covered">
<td class="num">237</td>
<td class="src"><pre><code class="objc">                completion(.success)</code></pre></td>
<td class="coverage">10x</td>
</tr>
<tr class="covered">
<td class="num">238</td>
<td class="src"><pre><code class="objc">                return</code></pre></td>
<td class="coverage">10x</td>
</tr>
<tr class="covered">
<td class="num">239</td>
<td class="src"><pre><code class="objc">            }</code></pre></td>
<td class="coverage">16x</td>
</tr>
<tr class="covered">
<td class="num">240</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage">16x</td>
</tr>
<tr class="covered">
<td class="num">241</td>
<td class="src"><pre><code class="objc">            UIView.transition(with: window, duration: duration, options: animationOptions, animations: {</code></pre></td>
<td class="coverage">16x</td>
</tr>
<tr class="covered">
<td class="num">242</td>
<td class="src"><pre><code class="objc">                let oldAnimationState = UIView.areAnimationsEnabled</code></pre></td>
<td class="coverage">16x</td>
</tr>
<tr class="covered">
<td class="num">243</td>
<td class="src"><pre><code class="objc">                UIView.setAnimationsEnabled(false)</code></pre></td>
<td class="coverage">16x</td>
</tr>
<tr class="covered">
<td class="num">244</td>
<td class="src"><pre><code class="objc">                window.rootViewController = viewController</code></pre></td>
<td class="coverage">16x</td>
</tr>
<tr class="covered">
<td class="num">245</td>
<td class="src"><pre><code class="objc">                window.rootViewController?.view.setNeedsLayout()</code></pre></td>
<td class="coverage">16x</td>
</tr>
<tr class="covered">
<td class="num">246</td>
<td class="src"><pre><code class="objc">                window.makeKeyAndVisible()</code></pre></td>
<td class="coverage">16x</td>
</tr>
<tr class="covered">
<td class="num">247</td>
<td class="src"><pre><code class="objc">                UIView.setAnimationsEnabled(oldAnimationState)</code></pre></td>
<td class="coverage">16x</td>
</tr>
<tr class="covered">
<td class="num">248</td>
<td class="src"><pre><code class="objc">            })</code></pre></td>
<td class="coverage">16x</td>
</tr>
<tr class="covered">
<td class="num">249</td>
<td class="src"><pre><code class="objc">            completion(.success)</code></pre></td>
<td class="coverage">16x</td>
</tr>
<tr class="covered">
<td class="num">250</td>
<td class="src"><pre><code class="objc">        }</code></pre></td>
<td class="coverage">16x</td>
</tr>
<tr class="never">
<td class="num">251</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">252</td>
<td class="src"><pre><code class="objc">    }</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">253</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">254</td>
<td class="src"><pre><code class="objc">    /// Helper `Action` that does nothing</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">255</td>
<td class="src"><pre><code class="objc">    public struct NilAction: Action {</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">256</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">257</td>
<td class="src"><pre><code class="objc">        // MARK: Methods</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">258</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">259</td>
<td class="src"><pre><code class="objc">        /// Constructor</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="covered">
<td class="num">260</td>
<td class="src"><pre><code class="objc">        init() {}</code></pre></td>
<td class="coverage">177x</td>
</tr>
<tr class="never">
<td class="num">261</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">262</td>
<td class="src"><pre><code class="objc">        /// Does nothing and always succeeds</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="covered">
<td class="num">263</td>
<td class="src"><pre><code class="objc">        public func perform(with viewController: UIViewController, on existingController: UIViewController, animated: Bool, completion: @escaping (RoutingResult) -&gt; Void) {</code></pre></td>
<td class="coverage">21x</td>
</tr>
<tr class="covered">
<td class="num">264</td>
<td class="src"><pre><code class="objc">            completion(.success)</code></pre></td>
<td class="coverage">21x</td>
</tr>
<tr class="covered">
<td class="num">265</td>
<td class="src"><pre><code class="objc">        }</code></pre></td>
<td class="coverage">21x</td>
</tr>
<tr class="never">
<td class="num">266</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">267</td>
<td class="src"><pre><code class="objc">    }</code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">268</td>
<td class="src"><pre><code class="objc"></code></pre></td>
<td class="coverage"></td>
</tr>
<tr class="never">
<td class="num">269</td>
<td class="src"><pre><code class="objc">}</code></pre></td>
<td class="coverage"></td>
</tr>
</table>
</div></div>
<footer><div class="row">
<p><a href="https://github.com/SlatherOrg/slather">Fork me on Github</a></p>
<p>&copy; 2022 Slather</p>
</div></footer><script src="highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script>
</body>
</html>
